package com.atguigu.controller;

import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * @author 杨博超
 * @title TestFileController
 * @create 2024/12/21 16:23
 * @description
 */
@RestController
public class TestFileController {

    @RequestMapping("/file/up")
    public String testFileUp(MultipartFile photo) throws IOException {
        //MultipartFile封装了上传的文件相关的信息
        //获取上传的文件的文件名
        String fileName = photo.getOriginalFilename();
        //获取随机的UUID作为文件名
        String uuid = UUID.randomUUID().toString();
        //获取上传的文件的后缀
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        //使用uuid和suffixName拼接新的文件名
        fileName = uuid + suffixName;
        //文件上传target/classes/static/photo下，因此首先需要获取static目录的File对象
        File staticFile = ResourceUtils.getFile("classpath:static");
        //获取static下photo目录的对象
        File photoFile = new File(staticFile, "photo");
        //判断photoFile是否存在
        if (!photoFile.exists()) {
            //表示photoFile不存在，则创建
            photoFile.mkdir();
        }
        //获取最终要上传的位置所对应的文件对象
        File finalFile = new File(photoFile, fileName);
        // 上传文件
        photo.transferTo(finalFile);
        return "success";
    }

}
